package com.itheima.dao;

import com.itheima.pojo.Menu;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

public interface MenuDao {
    /**
     * 通过用户获取一级菜单获取
     */
    List<Menu> getMenuFistLevelOneByName(String username);

    /**
     * 通过菜单的id子查询子集
     */
    List<Menu> findMenuByMid(Integer Mid);


    /**
     * 根据条件动态查询查询菜单列表
     */
    List<Menu> getMenuList(String queryString);



    /**
     * 是最后一级就删除菜单和role的关系表
     */
    void deleteById(Integer menuId);

    /**
     * 通过menuId查询和role的关联
     */
     int findRolesByMenuId(Integer menuId);


    /**
     * 回显一级菜单数据
     */
    List<Menu> getLevel1Menu();

    /**
     * 获取最新priority和path
     */
    Map getMaxPriAndPath();

    /**
     * 新增一级菜单
     */
    void add(Menu menu);

    /**
     * 根据用户选择的一级菜单查询对应的二级菜单(列表)
     */
    List<Menu> getMenuListByLevelId(Integer id);

    /**
     * 根据id查询菜单对象
     */
    Menu getMenuById(Integer id);

    /**
     * 编辑菜单
     */
    void edit(Menu menu);

    /**
     * 根据id和名字查询菜单对象
     */
    List<Menu> findMenuByMidAndName(@Param("id") Integer id, @Param("name")String name);

    /**
     * 校验菜单名是否重复
     */
    Menu findMenuByName(String name);
}
